﻿#define _CRT_SECURE_NO_WARNINGS 1


//#include<iostream>
//#include<cstring>
//using namespace std;
//const int N = 1e3 + 10;
//const int INF = 0x3f3f3f3f;
//int a[N][N];
//int dp[N][N];
//int n, t;
//void solve()
//{
//    if (a[1][1] % 2 == 0) 
//        dp[1][1] = n;
//    else 
//        dp[1][1] = 0;
//    for (int i = 1; i <= n; i++)
//    {
//        for (int j = 1; j <= n; j++)
//        {
//            //从左边过来
//            if (j - 1 >= 1 && a[i][j - 1] % 2 == a[i][j] % 2)
//            {
//                dp[i][j] = min(dp[i][j], dp[i][j - 1]);
//            }
//            //从上边过来
//            if (i - 1 >= 1)
//            {
//                if (a[i][j] % 2 == 0) 
//                    dp[i][j] = min(dp[i][j], dp[i - 1][j] + n);
//                else 
//                    dp[i][j] = min(dp[i][j], dp[i - 1][j]);
//            }
//        }
//    }
//    if (dp[n][n] >= INF) 
//        cout << "NO!" << endl;
//    else 
//        cout << dp[n][n] << endl;
//}
//int main()
//{
//    cin >> t;
//    while (t--)
//    {
//        memset(dp, 0x3f, sizeof dp);
//        cin >> n;
//        for (int i = 1; i <= n; i++)
//        {
//            for (int j = 1; j <= n; j++) 
//                cin >> a[i][j];
//        }
//        solve();
//    }
//    return 0;
//}


//#include<vector>
//#include<iostream>
//
//using namespace std;
//
//int main()
//{
//	int t = 0;
//	cin >> t;
//	while (t--)
//	{
//		int n = 0;
//		cin >> n;
//		vector<vector<int>> vv(n, vector<int>(n));
//		vector<vector<int>> dp(n + 1, vector<int>(n + 1, 2147483647));
//		for (int i = 0; i < n; i++)
//		{
//			for (int j = 0; j < n; j++)
//			{
//				cin >> vv[i][j];
//			}
//		}
//		dp[1][1] = vv[0][0] % 2 == 0 ? n : 0;
//		for (int i = 1; i <= n; i++)
//		{
//			for (int j = 1; j <= n; j++)
//			{
//				if (j - 2 >= 0 && vv[i - 1][j - 1] % 2 == vv[i - 1][j - 2] % 2)
//				{
//					dp[i][j] = min(dp[i][j], dp[i][j - 1]);
//				}
//				if (i - 1 >= 0)
//				{
//					if (vv[i - 1][j - 1] % 2 == 0)
//					{
//						dp[i][j] = min(dp[i][j], dp[i - 1][j] + n);
//					}
//					else
//					{
//						dp[i][j] = min(dp[i][j], dp[i - 1][j]);
//					}
//				}
//			}
//		}
//		if (dp[n][n] == -2147483646)
//		{
//			cout << "NO!" << endl;
//		}
//		else
//		{
//			cout << dp[n][n] << endl;
//		}
//	}
//
//	return 0;
//}


//#include<vector>
//#include<iostream>
//
//using namespace std;
//
//int main()
//{
//	int t = 0;
//	cin >> t;
//	while (t--)
//	{
//		int n = 0;
//		cin >> n;
//		vector<vector<int>> vv(n + 1, vector<int>(n + 1));
//		vector<vector<int>> dp(n + 1, vector<int>(n + 1, 2147483647));
//		for (int i = 1; i <= n; i++)
//		{
//			for (int j = 1; j <= n; j++)
//			{
//				cin >> vv[i][j];
//			}
//		}
//		dp[1][1] = vv[1][1] % 2 == 0 ? n : 0;
//		for (int i = 1; i <= n; i++)
//		{
//			for (int j = 1; j <= n; j++)
//			{
//				if (j - 1 >= 0 && vv[i][j] % 2 == vv[i][j - 1] % 2)
//				{
//					dp[i][j] = min(dp[i][j], dp[i][j - 1]);
//				}
//				if (i - 1 >= 0)
//				{
//					if (vv[i][j] % 2 == 0)
//					{
//						dp[i][j] = min(dp[i][j], dp[i - 1][j] + n);
//					}
//					else
//					{
//						dp[i][j] = min(dp[i][j], dp[i - 1][j]);
//					}
//				}
//			}
//		}
//		if (dp[n][n] == -2147483646)
//		{
//			cout << "NO!" << endl;
//		}
//		else
//		{
//			cout << dp[n][n] << endl;
//		}
//	}
//
//	return 0;
//}


#include<vector>
#include<iostream>

using namespace std;

void moveZeroes(vector<int>& nums)
{
    int begin = 0, end = 0;
    while (end < nums.size() && begin < nums.size())
    {
        while (begin < nums.size() && nums[begin] != 0)
        {
            begin++;
        }
        while (end < nums.size() && nums[end] == 0)
        {
            end++;
        }
        if (begin < nums.size() && end < nums.size())
        {
            swap(nums[begin], nums[end]);
        }
    }
}

int main()
{


    return 0;
}